package com.cainli.szbus.data.factory;

import java.util.ArrayList;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import com.cainli.szbus.config.JSONTag;
import com.cainli.szbus.data.model.BusStat;
import com.cainli.szbus.log.CLog;
import com.foxykeep.datadroid.exception.DataException;
/**
 * 
 * @author cainli
 *
 */
public class BusStatsListJsonFactory {

	private static final String TAG = BusStatsListJsonFactory.class
			.getSimpleName();

	private BusStatsListJsonFactory() {
		// No public constructor
	}

	public static ArrayList<BusStat> parseResult(String wsResponse)
			throws DataException {
		ArrayList<BusStat> busStatsList = new ArrayList<BusStat>();
		try {
			JSONObject parser = new JSONObject(wsResponse);
			JSONObject jsonRoot = parser
					.getJSONObject(JSONTag.BUSSTAT_LIST_ELEM_STATS);
			JSONArray jsonPersonArray = jsonRoot
					.getJSONArray(JSONTag.BUSSTAT_LIST_ELEM_STAT);
			int size = jsonPersonArray.length();
			for (int i = 0; i < size; i++) {
				JSONObject jsonPerson = jsonPersonArray.getJSONObject(i);
				BusStat busline = new BusStat();
				busline.name = jsonPerson
						.getString(JSONTag.BUSSTAT_LIST_ELEM_STAT_NAME);
				busline.xy = jsonPerson
						.getString(JSONTag.BUSSTAT_LIST_ELEM_STAT_XY);
				busline.lineNames = jsonPerson
						.getString(JSONTag.BUSSTAT_LIST_ELEM_STAT_LINENAMES);
				busStatsList.add(busline);
			}
		} catch (JSONException e) {
			CLog.e(TAG, "JSONException", e);
			throw new DataException(e);
		}

		return busStatsList;
	}
}
